package ar.fiuba.tp7552.buildadmin.webactions;

import java.math.BigDecimal;

import ar.fiuba.tp7552.buildadmin.model.builds.Edificio;
import ar.fiuba.tp7552.buildadmin.model.expensas.LiquidacionExpensas;

import com.opensymphony.xwork2.validator.ValidationException;
import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;

public class TipoPropiedadValidator extends FieldValidatorSupport {

	public void validate(Object object) throws ValidationException {
	 
		Edificio edificio = (Edificio) this.getFieldValue("edificio", object);
		if (LiquidacionExpensas.MONTO_FIJO.equals(edificio.getLiqExpensas())) {
			
			String fieldName = getFieldName();
			if (fieldName.equals("tipoPropiedad.expensasOrdinarias") || fieldName.equals("tipoPropiedad.expensasExtraordinarias")) {

				BigDecimal value = (BigDecimal) this.getFieldValue(fieldName, object);
				if (value == null || value.compareTo(BigDecimal.ZERO) <= 0) {
					addActionError(object);
				}
			}
		} else {
			String fieldName = getFieldName();
			if (fieldName.equals("tipoPropiedad.divisor")) {
				Double value = (Double) this.getFieldValue(fieldName, object);
				if ( value == null || value <= 0 ) {
					addActionError(object);
				}
			}
		}
	}
}